TestNG এর মধ্যে ব্যর্থ টেস্ট পুনরায় চালানো

TestNG এর মধ্যে Retry Logic প্রয়োগ করা - টেস্টএনজি (TestNG) - Java Technologies

421

TestNG একটি শক্তিশালী টেস্টিং ফ্রেমওয়ার্ক যা টেস্টের ফলাফল ট্র্যাক করতে এবং ব্যর্থ টেস্টগুলি পুনরায় চালাতে সহায়ক ফিচার প্রদান করে। অনেক সময় টেস্ট চলাকালীন কিছু টেস্ট ব্যর্থ হতে পারে। এর মধ্যে কিছু সময় সিস্টেমের কারণে বা ডিপেন্ডেন্সির কারণে ব্যর্থতা হতে পারে। TestNG এ ব্যর্থ টেস্ট পুনরায় চালানোর জন্য কিছু কৌশল রয়েছে যা টেস্ট রানকে আরও নির্ভরযোগ্য এবং কার্যকরী করে তোলে।


ব্যর্থ টেস্ট পুনরায় চালানোর জন্য @Test অ্যানোটেশন ব্যবহার

TestNG এর একটি সুবিধা হলো আপনি @Test অ্যানোটেশনে enabled অ্যাট্রিবিউট ব্যবহার করতে পারেন, যা টেস্ট সফল না হলে সেটি আবার চালানোর জন্য নির্দেশ দেয়। এই পদ্ধতিতে, একটি নির্দিষ্ট সংখ্যক বার ব্যর্থ হলে টেস্টটি পুনরায় চালানো যাবে।


১. Retry Analyzer ব্যবহার করা

TestNG এ ব্যর্থ টেস্ট পুনরায় চালানোর একটি জনপ্রিয় পদ্ধতি হলো Retry Analyzer ব্যবহার করা। এটি ব্যর্থ টেস্ট মেথডে আবার চেষ্টা করে। আপনাকে একটি IRetryAnalyzer ইন্টারফেস ইমপ্লিমেন্ট করতে হবে যা ব্যর্থ টেস্ট পুনরায় চালাবে।

১.১ IRetryAnalyzer ইন্টারফেস ইমপ্লিমেন্ট করা

প্রথমে IRetryAnalyzer ইন্টারফেসটি ইমপ্লিমেন্ট করুন। এখানে, যদি টেস্টটি ব্যর্থ হয়, তখন এটি পুনরায় নির্দিষ্ট সংখ্যক বার চেষ্টা করবে।

import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;

public class RetryAnalyzer implements IRetryAnalyzer {
    private int count = 0;
    private int maxRetryCount = 3;  // সর্বাধিক ৩ বার চেষ্টা করবে

    @Override
    public boolean retry(ITestResult result) {
        if (count < maxRetryCount) {
            count++;
            return true;  // পুনরায় টেস্ট চালানো হবে
        }
        return false;  // আর পুনরায় টেস্ট চালানো হবে না
    }
}

এখানে maxRetryCount হলো কতবার টেস্টটি পুনরায় চালানো হবে। আপনি এই মানটি পরিবর্তন করতে পারেন আপনার প্রয়োজন অনুসারে।

১.২ @Test অ্যানোটেশনে retryAnalyzer ব্যবহার করা

এখন @Test অ্যানোটেশনটিতে retryAnalyzer ব্যবহার করে আপনার টেস্টে Retry Analyzer যুক্ত করুন।

import org.testng.annotations.Test;

public class TestClass {

    @Test(retryAnalyzer = RetryAnalyzer.class)
    public void testMethod1() {
        System.out.println("টেস্ট ১ চালানো হচ্ছে");
    }

    @Test(retryAnalyzer = RetryAnalyzer.class)
    public void testMethod2() {
        System.out.println("টেস্ট ২ চালানো হচ্ছে");
        throw new RuntimeException("একটি ত্রুটি ঘটেছে");
    }
}

এখানে, testMethod2 টেস্টটি যদি প্রথমবার ব্যর্থ হয়, তাহলে এটি ৩ বার পর্যন্ত পুনরায় চালানো হবে।


২. @Test এর successPercentage ব্যবহার

TestNG এর আরেকটি উপায় হলো successPercentage ব্যবহার করা, যা আপনার টেস্টের সফলতার হার অনুযায়ী ব্যর্থ টেস্টগুলো পুনরায় চালানো নিশ্চিত করে। আপনি @Test অ্যানোটেশনে successPercentage প্রপার্টি সেট করতে পারেন।

@Test(successPercentage = 80, invocationCount = 10)
public void testMethod() {
    System.out.println("এই টেস্টটি ১০ বার চালানো হবে এবং সফলতার হার ৮০% থাকতে হবে");
}

এখানে invocationCount সেট করা হয়েছে ১০, অর্থাৎ টেস্টটি মোট ১০ বার চালানো হবে এবং সফলতার হার ৮০% হলে টেস্টটি সফল হিসেবে গণ্য হবে। ব্যর্থতার পরও টেস্ট পুনরায় চালানোর সুযোগ থাকে।


৩. testng.xml ফাইল ব্যবহার করে পুনরায় টেস্ট চালানো

TestNG এর testng.xml কনফিগারেশন ফাইলেও আপনি ব্যর্থ টেস্ট পুনরায় চালানোর জন্য কিছু সেটিংস কনফিগার করতে পারেন।

<suite name="Suite">
    <test name="Test">
        <classes>
            <class name="TestClass"/>
        </classes>
    </test>

    <listeners>
        <listener class-name="org.testng.reporters.EmailableReporter"/>
    </listeners>

    <parameter name="retryAnalyzer" value="RetryAnalyzer"/>
</suite>

এখানে আপনি কাস্টম রিট্রাই অ্যানালাইজার যোগ করতে পারেন, যা ব্যর্থ টেস্টগুলি পুনরায় চালাবে।


সারাংশ

TestNG এর মধ্যে ব্যর্থ টেস্ট পুনরায় চালানো বেশ সহজ এবং কার্যকরী। আপনি IRetryAnalyzer ইন্টারফেস ইমপ্লিমেন্ট করে বা @Test অ্যানোটেশনে retryAnalyzer ব্যবহার করে ব্যর্থ টেস্ট পুনরায় চালাতে পারেন। এছাড়া, successPercentage এবং invocationCount ব্যবহার করেও পুনরায় টেস্ট চালানোর সুবিধা পাওয়া যায়। testng.xml কনফিগারেশন ফাইলেও কিছু নির্দিষ্ট সেটিংস ব্যবহার করে ব্যর্থ টেস্ট পুনরায় চালানো সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...